package HashSet.project;

import java.util.HashSet;

/*
    HashSet集合的使用：
    存储结构：数组+链表+红黑树
    特点：不重复，无序，无下标
 */
public class PracticeMain {
    public static void main(String[] args) {
        HashSet<Student> set = new HashSet();
        Student s1 = new Student("张三",22);
        Student s2 = new Student("李四",23);
        Student s3 = new Student("王五",24);
        //Student s4 = new Student("张三",22);
        set.add(s1);
        set.add(s2);
        set.add(s3);
        //set.add(s4);
        System.out.println(set.size());
        System.out.println(set.toString());
        //增加一个
        /*
            在没重写hasCode和equals方法之前是可以的，因为地址不同
            若要相同的数据不能加入，需要重写hasCode和equals方法
            具体步骤：第一步先同过重写的hasCode来判断要存入的位置是否被占用了，若以被占用
                     第二步通过重写equals方法进行内容比较，若一样，则不增加
         */
        set.add(new Student("张三",22));//重复了
        System.out.println(set.size());

        //遍历方式：1.增强for  2.迭代器：Iterator
        //判断
    }
}
